Test data is used for testing a software application before the application is made available to customers. For example, for an enterprise resource planning (ERP) application, test data can include mock records of customers, accounts, orders, or any other entities that make up an underlying application data model. The test data enables a developer to test the software application under various test scenarios. Test data may be automatically generated or manually created by a user of an external tool, and uploaded to an application database. The same test data may be reused in different test systems, modules or instances. Test data is not only used to detect defects or failures in the software during manual tests, but is often used as a basis for regular automated tests. For these automated tests, it is very important that test data is up to date and stable in all systems in which these tests are executed.
In a system environment with several development and test systems, however, it is often complicated to move and adapt the test data from the development system to the test system. Existing test data management frameworks suffer from various issues. For example, the copy mechanism for cloning data may be unstable, resulting in side effects such as inconsistent data.
In most cases, a major challenge lies in synchronizing software development and test data maintenance. In the absence of synchronization, some test data may be outdated and lagging behind the software development process. Manual synchronization is typically error-prone and inefficient. Software development and data maintenance often take place independently of each other, which can cause inconsistencies that negatively impact tests, especially automated tests. In addition, software development tools typically support the main development process (e.g. transportation of software components), but not the distribution of test data to different development and test systems. Hard copying of test data may also cause negative side effects due to, for example, missing data that is created during data maintenance via a user interface (UI).
Another problem with present frameworks is that when test data is copied to a test system without delta handling, all other created data is lost. Such data includes, for example, master data records such as employee, organization management, etc. In addition, the test data may be manually changed in an uncontrolled manner, thereby resulting in failures in subsequent automatic or manual tests. To avoid this, a central team is often required to coordinate changes to the test data.